package com.wang.blog.service.impl;

import com.wang.blog.dao.MeTagDAO;
import com.wang.blog.model.MeTag;
import com.wang.blog.model.MeTagExample;
import com.wang.blog.ov.TagVO;
import com.wang.blog.service.TagService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;

/**
 * @author 王益波
 * @version 1.0
 * @date 2020/9/8 9:14
 */
@Service
public class TagServiceImpl implements TagService {

    @Autowired
    MeTagDAO meTagDAO;

    @Override
    public List<MeTag> findAll() {
        MeTagExample meTagExample=new MeTagExample();
        MeTagExample.Criteria criteria=meTagExample.createCriteria();

        return meTagDAO.selectByExample(meTagExample);
    }

    @Override
    public MeTag getTagById(Integer id) {
        return null;
    }

    @Override
    public Integer saveTag(MeTag tag) {
        return null;
    }

    @Override
    public Integer updateTag(MeTag tag) {
        return null;
    }

    @Override
    public void deleteTagById(Integer id) {

    }

    @Override
    public List<MeTag> listHotTags(int limit) {
        return meTagDAO.listHotTag(limit);
    }

    @Override
    public List<TagVO> findAllDetail() {
        List<TagVO> list=new ArrayList<>();

        List<MeTag> meTagList=meTagDAO.selectByExample(new MeTagExample());

        for (MeTag x:meTagList
             ) {

            TagVO tagVO=new TagVO();

            tagVO.setId(x.getId());
            tagVO.setAvatar(x.getAvatar());
            tagVO.setTagname(x.getTagname());

            tagVO.setArticles(meTagDAO.listArticlesByTag(x.getId()));
            list.add(tagVO);
        }
        return list;
    }

    @Override
    public TagVO getTagDetail(Integer tagId) {

        MeTag meTag= meTagDAO.selectByPrimaryKey(tagId);
        TagVO tagVO=new TagVO();
        tagVO.setAvatar(meTag.getAvatar());
        tagVO.setId(meTag.getId());
        tagVO.setAvatar(meTag.getAvatar());


        tagVO.setArticles(meTagDAO.listArticlesByTag(tagId));
        return tagVO;
    }
}
